home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 5 / Apprentice-Release5.iso / Source Code / Libraries / DCLAP 6d / dclap6d / DBio / DAsmSequence.h < prev    next >
Text File  |  1996-07-05  |  2KB  |  78 lines

  1. // DAsmSequence.h 
  2. // by d.g.gilbert, Oct 1990 -- 1994
  3.  
  4.  
  5. #ifndef __DASMSEQUENCE__
  6. #define __DASMSEQUENCE__
  7.  
  8.  
  9. #include <DSequence.h>
  10.             
  11.             
  12. struct TraceBase {
  13.     enum { tA, tC, tG, tT, tMax };
  14.     short tr[4]; 
  15.     char    base;
  16.     
  17.     TraceBase( short Aht, short Cht, short Ght, short Tht, char aBase = 0)  
  18.     {
  19.         base= aBase;
  20.         tr[tA]= Aht; tr[tC]=Cht; tr[tG]=Ght; tr[tT]=Tht;
  21.     }
  22.  
  23.     TraceBase()   
  24.     {
  25.         base= 0;
  26.         tr[tA]= tr[tC]= tr[tG]= tr[tT]=0;
  27.     }
  28.         
  29. };
  30.  
  31.  
  32. class    DAsmSequence : public DSequence {
  33. public:
  34.     enum asmseqType {
  35.         kAutoseq    = kOtherSeq+1,
  36.         };
  37.         
  38. protected:        
  39.     TraceBase    * fTrace;       // autoseq traces for A,C,G,T 
  40.     long                fNTrace, fMaxTrace;     // # points/trace  
  41.     short            *    fTrCenter;        // base positions in traces (fLength == #bases)
  42.     long                fTrlength;        // should! be same as fLength
  43.     short                fMaxHeight[4];    // max trace value, for scaling
  44.     char            * fTFName;
  45. public:
  46.     
  47.     DAsmSequence();
  48.     virtual ~DAsmSequence();
  49.  
  50.     virtual DObject* Clone(); // override 
  51.     virtual void CopyContents( DAsmSequence* fromSeq);
  52.     
  53.     virtual TraceBase* Trace() const { return fTrace; }
  54.     virtual TraceBase TraceAt(long item);
  55.     virtual void     SetTraceAt(long item,TraceBase tr); 
  56.     virtual short* TrCenter() const { return fTrCenter; }
  57.     virtual long     NumPoints() { return fNTrace; }
  58.     virtual long     MaxPoints() { return fMaxTrace; }
  59.     virtual void     SetPoints(long np) { fNTrace= np; }
  60.     virtual short MaxHeight(short trace);
  61.     virtual void  SetMaxHeight(short trace, short max);
  62.     virtual const char*  TracefileName();
  63.     virtual void     SetTracefileName(char* name); 
  64.     virtual void  TraceToBases(); 
  65.  
  66.     virtual void SetTrace( TraceBase*& theTrace, long npoints, long maxtrace,
  67.                             Boolean duplicate = false);
  68.     virtual void SetTrCenter( short*& theTrCenter, long trlength, 
  69.                             Boolean duplicate = false);
  70.     virtual void UpdateTrace( TraceBase*& theTrace, long npoints, long maxtrace);
  71.     
  72.     virtual void DoWrite( DFile* aFile, short format);  // revise for ostream
  73.     virtual void DoWriteSelection( DFile* aFile, short format); // revise for ostream
  74. };
  75.  
  76.  
  77. #endif
  78.